home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer: Getting Started / Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin / pc / mac / bonus / peter_le / finger-1 / my_units / mybutton.uni < prev    next >
Text File  |  1992-02-24  |  2KB  |  78 lines

  1. unit MyButtons;
  2.  
  3. { This code is part of the Finger/Fingerd source code, written in THINK Pascal 4 }
  4. { Copyright 1991-1992 Peter N Lewis }
  5. { If you use this code, you must give me credit in your about box and documentation }
  6. { This is part of my generic library of routines }
  7.  
  8. interface
  9.  
  10.     procedure GrayButton (dlg: dialogPtr; item: integer);
  11.     procedure UngrayButton (dlg: dialogPtr; item: integer);
  12.     procedure UpdateButton (dlg: dialogPtr; item: integer; active: boolean);
  13.     procedure InitButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  14.     procedure SetButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  15.  
  16. implementation
  17.  
  18.     procedure GrayButton (dlg: dialogPtr; item: integer);
  19.         var
  20.             kind: integer;
  21.             h: handle;
  22.             r: rect;
  23.             ps: PenState;
  24.     begin
  25.         GetDItem(dlg, item, kind, h, r);
  26.         InsetRect(r, 4, 2);
  27.         GetPenState(ps);
  28.         PenPat(gray);
  29.         PenMode(patBic);
  30.         PaintRoundRect(r, 3, 3);
  31.         SetPenState(ps);
  32.     end;
  33.  
  34.     procedure UngrayButton (dlg: dialogPtr; item: integer);
  35.         var
  36.             kind: integer;
  37.             h: handle;
  38.             r: rect;
  39.     begin
  40.         GetDItem(dlg, item, kind, h, r);
  41.         Draw1Control(controlHandle(h));
  42.     end;
  43.  
  44.     procedure UpdateButton (dlg: dialogPtr; item: integer; active: boolean);
  45.     begin
  46.         if not active then
  47.             GrayButton(dlg, item);
  48.     end;
  49.  
  50.     procedure InitButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  51.         var
  52.             kind: integer;
  53.             h: handle;
  54.             r: rect;
  55.             ps: PenState;
  56.     begin
  57.         active := new;
  58.         GetDItem(dlg, item, kind, h, r);
  59.         if active then
  60.             HiliteControl(controlHandle(h), 0)
  61.         else begin
  62.             HiliteControl(controlHandle(h), 255);
  63.             GrayButton(dlg, item);
  64.         end;
  65.     end;
  66.  
  67.     procedure SetButton (dlg: dialogPtr; item: integer; var active: boolean; new: boolean);
  68.     begin
  69.         if active <> new then begin
  70.             if new then
  71.                 UngrayButton(dlg, item)
  72.             else
  73.                 GrayButton(dlg, item);
  74.             InitButton(dlg, item, active, new);
  75.         end;
  76.     end;
  77.  
  78. end.